package example.op.mouse;

import com.sun.jna.platform.win32.COM.util.ObjectFactory;
import com.sun.jna.platform.win32.Variant;
import com.sun.jna.ptr.IntByReference;
import op.OpInit;
import op.OpSoft;

import java.util.logging.Logger;

/**
 * 该例子主要作用：
 * 学会使用JNA返回指针数据
 * 用于 图片识别、颜色查找后 得到位置信息，鼠标位置信息
 * 例子：内容
 * 每200ms获取一次当前鼠标位置
 *
 */
public class GetCursorPos {
    private static Logger logger = Logger.getLogger(GetCursorPos.class.getName());
    public static void main(String[] args) throws InterruptedException {
        //初始化文件存放路
        OpInit.init("D:\\op\\tools.dll","D:\\op\\op_x64.dll");
        //创建OpSoft对象
        ObjectFactory objectFactory = new ObjectFactory();
        OpSoft opSoft = objectFactory.createObject(OpSoft.class);//JNA创建com对象实例 可以自己去了解window com
        while (true) {
            Thread.sleep(200);
            Variant.VARIANT x = new Variant.VARIANT(new IntByReference());//用于返回鼠标x轴信息
            Variant.VARIANT y = new Variant.VARIANT(new IntByReference());//用于返回鼠标y轴信息
            opSoft.getCursorPos(x,y);
            logger.info("x="+x.intValue()+",y="+y.intValue());
        }
    }
}
